home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / opengldoc / glspec / texture_select.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  8.2 KB  |  247 lines

  1. Name
  2.  
  3.     SGIS_texture_select
  4.  
  5. Name Strings
  6.  
  7.     GL_SGIS_texture_select
  8.  
  9. Version
  10.  
  11.     $Date: 1996/04/01 23:23:29 $ $Revision: 1.1 $
  12.  
  13. Number
  14.  
  15.     51
  16.  
  17. Dependencies
  18.  
  19.     EXT_texture
  20.     EXT_texture3D
  21.     EXT_texture_object
  22.     SGIS_detail_texture
  23.  
  24. Overview
  25.  
  26.     This extension introduces several new texture internal formats.  The
  27.     purpose of these new formats is to reorganize the components of a
  28.     texture into groups of components.  The currently selected group
  29.     effectively becomes the internal format.
  30.  
  31.     Also, two new texture parameters are introduced that control the
  32.     selection of these groups of components.
  33.  
  34.     For example, assume a texture internal format of DUAL_LUMINANCE4_SGIS is
  35.     specified.  Now there are two groups of components, where each group has
  36.     a format of LUMINANCE4.  One of the two LUMINANCE groups is always
  37.     selected.  components can be selected and then interpreted as a LUMINANCE
  38.     texture.
  39.  
  40.     The purpose of this extension is allow better utilization of texture
  41.     memory by subdividing the internal representation of a texel into 1, 2,
  42.     or 4 smaller texels.  Additionally, this may improve performance of
  43.     texture downloads.
  44.  
  45. Issues
  46.  
  47.     *    This spec still needs values for the enumerants.  Also, the GLX
  48.     section is empty.
  49.  
  50.     *    This extension was formerly named SGIS_component_select.  The
  51.     reference to "component" was confusing so we changed it.
  52.  
  53.     *    We have removed the ability to "alias" or reinterpret groups of
  54.     components.  Specifically, once a texture is defined with a DUAL*
  55.     or QUAD* internal format, the fact that it is ALPHA, LUMINANCE,
  56.     INTENSITY, or LUMINANCE_ALPHA is not changeable.  a previous version
  57.     of this spec allowed this.  IrisGL on RealityEngine allowed it as
  58.     well.  Since this function might be useful, it should be revisited
  59.     in a separate spec that allows this for all internal formats, not
  60.     just the ones defined here.  Additionally, any porting document
  61.     should mention this subtle point.  
  62.  
  63.     *    Should we include versions of these new internal formats that don't 
  64.     specify bit resolution?  (e.g. DUAL_ALPHA_SGIS)  It would add the
  65.     ability to be vague about the actual resolution and would make it
  66.     appear consistent with internal formats from EXT_texture.  Can
  67.     someone make a good argument for adding these?
  68.  
  69.     *    Do we need a new query to determine component bit resolution?
  70.     A. No.  The existing queries defined by EXT_texture are sufficient.
  71.     The query applies to the selected group of components.
  72.  
  73.     *    Need to review dependencies on detail_texture, sharpen, etc.  Can
  74.     one create a detail texture using these new formats?  A. The
  75.     dependency on SGIS_detail_texture is mentioned below.
  76.  
  77.     *    Is there an easy way to know whether this extension is actually
  78.     "enabled"?  A. This extension is enabled when the current texture
  79.     format is one of the new internal formats defined here.  An
  80.     additional query is required to determine which group of components 
  81.     is selected. 
  82.  
  83.  
  84. New Procedures and Functions
  85.  
  86.     None
  87.  
  88. New Tokens
  89.  
  90.     Accepted by the <components> parameter of TexImage1D and TexImage2D, and
  91.     the <internalformat> parameter of TexImage3DEXT:
  92.  
  93.     DUAL_ALPHA4_SGIS
  94.     DUAL_ALPHA8_SGIS
  95.     DUAL_ALPHA12_SGIS
  96.     DUAL_ALPHA16_SGIS
  97.     DUAL_LUMINANCE4_SGIS
  98.     DUAL_LUMINANCE8_SGIS
  99.     DUAL_LUMINANCE12_SGIS
  100.     DUAL_LUMINANCE16_SGIS
  101.     DUAL_INTENSITY4_SGIS
  102.     DUAL_INTENSITY8_SGIS
  103.     DUAL_INTENSITY12_SGIS
  104.     DUAL_INTENSITY16_SGIS
  105.     DUAL_LUMINANCE_ALPHA4_SGIS
  106.     DUAL_LUMINANCE_ALPHA8_SGIS
  107.     QUAD_ALPHA4_SGIS
  108.     QUAD_ALPHA8_SGIS
  109.     QUAD_LUMINANCE4_SGIS
  110.     QUAD_LUMINANCE8_SGIS
  111.     QUAD_INTENSITY4_SGIS
  112.     QUAD_INTENSITY8_SGIS
  113.  
  114.     Accepted by the <pname> parameter of TexParameterf, TexParameteri,
  115.     TexParameterfv, TexParameteriv, GetTexParameterfv, and 
  116.     GetTexParameteriv:
  117.  
  118.     DUAL_TEXTURE_SELECT_SGIS
  119.     QUAD_TEXTURE_SELECT_SGIS
  120.  
  121.  
  122. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  123.  
  124.     None.
  125.  
  126. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  127.  
  128.     The selection of a group of components is specified by using 
  129.     TexParameterf, TexParameteri, TexParameterfv, or TexParameteriv with 
  130.     a <pname> parameter of DUAL_TEXTURE_SELECT_SGIS or QUAD_TEXTURE_SELECT_SGIS.
  131.  
  132.     The value of DUAL_TEXTURE_SELECT_SGIS selects one of two groups of
  133.     components (hence the term DUAL).  The <param> parameter must be 0 or 1.
  134.     Otherwise, an INVALID_VALUE error is set.  When the texture internal
  135.     format is one of the DUAL* formats, this selection becomes active. A
  136.     value of 0 specifies that the first group of components is used, a value
  137.     of 1 specifies the second group, and so on.
  138.  
  139.     Similarly, the value of QUAD_TEXTURE_SELECT_SGIS selects one of four
  140.     groups of components in the case that the texture internal format is one
  141.     of the QUAD* formats.  The <param> value must be 0, 1, 2 or 3.
  142.     Otherwise, an INVALID_VALUE error is set.
  143.     
  144.     There is always a selection defined for both DUAL_TEXTURE_SELECT_SGIS
  145.     and QUAD_TEXTURE_SELECT_SGIS formats.  It becomes active when the
  146.     current texture format becomes one of the DUAL* or QUAD* formats,
  147.     respectively.  If the current texture format is not one of DUAL* or
  148.     QUAD* formats, this extension has no effect.
  149.  
  150.     The mapping of components from the canonical RGBA to these new internal
  151.     formats needs to be clarified.  There are three cases.  The first case
  152.     is for the DUAL* formats that are groups of ALPHA, LUMINANCE, and
  153.     INTENSITY.  The RED component goes to the first group while ALPHA goes
  154.     to the second group.  The second case is for the DUAL* formats that are
  155.     groups of LUMINANCE_ALPHA.  The RED and GREEN components go to the first
  156.     group while BLUE and ALPHA go to the second group.  The third case is
  157.     for the QUAD* formats.  The RED component goes to the first group, the
  158.     GREEN component to the second group, the BLUE component to the third
  159.     group, and the ALPHA component to the fourth group.
  160.  
  161.     The interpretation of the bit resolutions of the new internal formats 
  162.     is implementation dependent.  (Similar to EXT_texture.)  The actual
  163.     resolution granted can be queried using Get*.  The bit resolution of
  164.     similar type components in a group, such as multiple LUMINANCE
  165.     components, is always the same.
  166.  
  167.  
  168. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  169. and the Frame Buffer)
  170.  
  171.     None.
  172.  
  173. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  174.  
  175.     None.
  176.  
  177. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  178.  
  179.     None.
  180.  
  181. Additions to the GLX Specification
  182.  
  183.     None.
  184.  
  185. GLX Protocol
  186.  
  187.     XXX
  188.  
  189. Dependencies on EXT_texture
  190.  
  191.     EXT_texture is required.  This extension defines new texture internal
  192.     formats that build on concepts (such as the INTENSITY format and
  193.     component numeric resolutions) introduced in the EXT_texture extension.
  194.  
  195. Dependencies on EXT_texture3D
  196.  
  197.     If EXT_texture3D is not supported, references to it should be ignored.
  198.     (see New State)
  199.  
  200. Dependencies on EXT_texture_object
  201.  
  202.     If EXT_texture_object is not supported, references to it should be
  203.     ignored.  (See New State.)
  204.  
  205. Dependencies on SGIS_detail_texture
  206.  
  207.     The condition for using the detail texture (see detail_texture.spec,
  208.     section 3.8.2.1 Texture magnification with detail) is modified to read:
  209.  
  210.     "The conditions are:
  211.  
  212.     1.  The active texture must be TEXTURE_2D.
  213.  
  214.     2.  The internal formats of TEXTURE_2D and DETAIL_TEXTURE_2D_SGIS
  215.         must have been specified identically.
  216.  
  217.     3.  If SGIS_texture_select is supported and if the internal formats
  218.         of TEXTURE_2D and DETAIL_TEXTURE_2D_SGIS are one of those
  219.         defined by SGIS_texture_select (e.g. DUAL_LUMINANCE4_SGIS),
  220.         then the corresponding group selections (e.g. the value of
  221.         DUAL_TEXTURE_SELECT_SGIS) must have been specified identically.
  222.  
  223.     If these conditions are not met, it is as though the magnification
  224.     texture filter was LINEAR."
  225.  
  226. Errors
  227.  
  228.     See above.
  229.  
  230. New State
  231.  
  232.                                             Initial
  233.     Get Value                Get Command        Type            Value        Attrib
  234.     ---------                -----------        ----            -------        ------
  235.  
  236.     DUAL_TEXTURE_SELECT_SGIS        GetTexParameter        n x 3 x Z2        0        texture
  237.  
  238.     QUAD_TEXTURE_SELECT_SGIS        GetTexParameter        n x 3 x Z4        0        texture
  239.  
  240.  
  241.     Note:  The "Type" column shows "n x ..." since this state will appear 
  242.     in each of "n" objects defined by EXT_texture_object.
  243.  
  244. New Implementation Dependent State
  245.  
  246.     None.
  247.